Database Connectivity এবং Query বিল্ডার

Web Development - কোডইগনাইটার (Codeigniter) - CodeIgniter Database Interaction |

CodeIgniter ডাটাবেস ম্যানেজমেন্ট সহজ এবং কার্যকর করতে একটি শক্তিশালী Database Connectivity এবং Query Builder সিস্টেম সরবরাহ করে। এটি ডাটাবেস সংযোগ, কুয়েরি এক্সিকিউশন, এবং ডেটা ম্যানিপুলেশনকে সহজতর করে।


ডাটাবেস কানেকশন (Database Connectivity)

১. ডাটাবেস কনফিগারেশন

CodeIgniter-এ ডাটাবেস সংযোগের জন্য app/Config/Database.php ফাইল ব্যবহার করা হয়।

উদাহরণ:
public $default = [
    'DSN'      => '',
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'your_database_name',
    'DBDriver' => 'MySQLi',
    'DBPrefix' => '',
    'pConnect' => false,
    'DBDebug'  => (ENVIRONMENT !== 'production'),
    'charset'  => 'utf8',
    'DBCollat' => 'utf8_general_ci',
    'swapPre'  => '',
    'encrypt'  => false,
    'compress' => false,
    'strictOn' => false,
    'failover' => [],
    'port'     => 3306,
];
  • hostname: সার্ভারের ঠিকানা, যেমন localhost
  • username: ডাটাবেসের ইউজারনেম।
  • password: ডাটাবেসের পাসওয়ার্ড।
  • database: ডাটাবেসের নাম।
  • DBDriver: ডাটাবেস ড্রাইভার, যেমন MySQLi, Postgre, SQLite ইত্যাদি।

২. ডাটাবেস কানেকশন তৈরি

ডাটাবেস কানেকশন তৈরি করতে Model বা Database Library ব্যবহার করতে পারেন।

$db = \Config\Database::connect();

Query বিল্ডার (Query Builder) ব্যবহার

Query Builder CodeIgniter-এর একটি বিশেষ ফিচার, যা ডাটাবেস অপারেশন সহজ করতে সাহায্য করে। এটি SQL কুয়েরি লিখার প্রয়োজন কমিয়ে দেয়।


Query বিল্ডারের মেথডসমূহ

১. ডেটা ফেচ করা (Retrieving Data)

সব ডেটা রিট্রিভ
$query = $db->table('products')->get();
$result = $query->getResult();
নির্দিষ্ট কলাম রিট্রিভ
$query = $db->table('products')->select('name, price')->get();
$result = $query->getResult();
শর্ত অনুযায়ী ডেটা রিট্রিভ
$query = $db->table('products')->where('price >', 500)->get();
$result = $query->getResult();
লিমিট এবং অর্ডার যোগ করা
$query = $db->table('products')
            ->orderBy('price', 'DESC')
            ->limit(10)
            ->get();
$result = $query->getResult();

২. ডেটা ইনসার্ট করা (Inserting Data)

একক রেকর্ড ইনসার্ট
$data = [
    'name' => 'Product 1',
    'price' => 100,
    'description' => 'Product description'
];
$db->table('products')->insert($data);
একাধিক রেকর্ড ইনসার্ট
$data = [
    [
        'name' => 'Product 1',
        'price' => 100,
        'description' => 'Description 1'
    ],
    [
        'name' => 'Product 2',
        'price' => 200,
        'description' => 'Description 2'
    ]
];
$db->table('products')->insertBatch($data);

৩. ডেটা আপডেট করা (Updating Data)

নির্দিষ্ট রেকর্ড আপডেট
$data = [
    'price' => 150
];
$db->table('products')->where('id', 1)->update($data);
একাধিক রেকর্ড আপডেট
$data = [
    ['id' => 1, 'price' => 150],
    ['id' => 2, 'price' => 250],
];
$db->table('products')->updateBatch($data, 'id');

৪. ডেটা ডিলিট করা (Deleting Data)

নির্দিষ্ট রেকর্ড ডিলিট
$db->table('products')->where('id', 1)->delete();
সমস্ত রেকর্ড ডিলিট
$db->table('products')->truncate();

কাস্টম কুয়েরি চালানো

CodeIgniter-এ কাস্টম SQL কুয়েরি চালানোর সুবিধাও রয়েছে।

$query = $db->query("SELECT * FROM products WHERE price > 500");
$result = $query->getResult();

ফলাফল মেথড

Query থেকে ডেটা রিট্রিভ করার জন্য বিভিন্ন মেথড ব্যবহার করা যায়:

  • getResult(): অ্যারের মাধ্যমে ফলাফল প্রদান করে।
  • getRow(): একক রো রিটার্ন করে।
  • getResultArray(): অ্যাসোসিয়েটিভ অ্যারে প্রদান করে।

উদাহরণ:

$query = $db->table('products')->get();
$result = $query->getResultArray();

ডিবাগিং এবং লগিং

কোনো কুয়েরি চালানোর পর সর্বশেষ কুয়েরি দেখতে ব্যবহার করুন:

echo $db->getLastQuery();

এটি ডিবাগিং এবং সমস্যা সমাধানে সহায়ক।


সুবিধা

  1. সহজ ব্যবহার: SQL কুয়েরির পরিবর্তে সরাসরি বিল্ট-ইন মেথড ব্যবহার করা যায়।
  2. নিরাপত্তা: SQL ইনজেকশন প্রতিরোধ করে।
  3. পুনরায় ব্যবহারযোগ্য: ডাটাবেস ম্যানিপুলেশন দ্রুত এবং সহজ হয়।

CodeIgniter-এর Database Connectivity এবং Query Builder ডাটাবেস সম্পর্কিত কাজকে অত্যন্ত কার্যকর এবং সুরক্ষিত করে। ডাটাবেসের সঙ্গে কাজ করার জন্য এটি ডেভেলপারদের জন্য একটি সহজ এবং নির্ভরযোগ্য সমাধান।

Content added By
Promotion